package view;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.JPanel;

public class JBaralhoPanel extends JPanel{

	private static final long serialVersionUID = 1L;
	private JCartaButton anterior;

	public JBaralhoPanel(List<JCartaButton> cartaButton) {

		linkAllListenersAndAddToPanel(cartaButton);

		int i = (int) Math.sqrt(cartaButton.size());
		setLayout(new GridLayout(i,i));
	}

	private void linkAllListenersAndAddToPanel(List<JCartaButton> cartaButton) {
		for (JCartaButton cB : cartaButton) {
			linkListener(cB);
			add(cB);
		}
	}

	private void linkListener(JCartaButton cB) {
		cB.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				JCartaButton carta = (JCartaButton) e.getSource();
				if(!carta.estaVirada()){
					carta.mostraCarta();
					if(anterior != null && !anterior.equals(carta) && anterior.estaVirada() && anterior.isEnabled()){
						if(anterior.getCarta().getUrlImagemVerso().equals(carta.getCarta().getUrlImagemVerso())){
							anterior.setEnabled(false);
							carta.setEnabled(false);
							anterior = null;
						}else{
							if(anterior.isEnabled() && !anterior.equals(carta)){
								anterior.escondeCarta();
							}
							carta.escondeCarta();
							anterior = null;
						}
						
					}else{
						anterior = null;
					}

				}else{
					carta.escondeCarta();
					anterior = null;
				}
				anterior = carta;
			}
		});
	}
}
